package com.kang.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kang.pojo.PurchaseItem;
import com.vonechina.entity.page.PurchaseRequestItemPage;

/**
 * 采购申请物品信息持久层
 * 
 * @author zs614
 *
 */
public interface PurchaseRequestItemMapper {
	/**
	 * 新增采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息实体类
	 * @return
	 */
	int addItem(PurchaseItem item);

	/**
	 * 更新采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息实体类
	 * @return
	 */
	int updateItem(PurchaseItem item);

	/**
	 * 查询采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息实体类
	 * @return
	 */
	PurchaseItem selectItem(PurchaseItem item);

	/**
	 * 根据采购申请ID与仓库ID查询采购申请物品信息
	 * 
	 * @param purchaseRequisitionID
	 *            采购申请ID
	 * @param warehouseManagementID
	 *            仓库ID
	 * @return
	 */
	List<PurchaseItem> listItem(@Param("purchaseRequisitionID") int purchaseRequisitionID,
			@Param("warehouseManagementID") int warehouseManagementID);

	/**
	 * 根据ID查询采购申请物品信息
	 * 
	 * @param id
	 *            采购申请物品信息ID
	 * @return
	 */
	public PurchaseItem selectItemById(int id);

	/**
	 * 根据ID与状态查询采购申请物品信息
	 * 
	 * @param id
	 *            采购申请物品信息ID
	 * @param status
	 *            状态
	 * @return
	 */
	public PurchaseItem selectItemByIdAndStatus(@Param("id") int id, @Param("status") int status);

	/**
	 * 更新采购申请物品信息状态
	 * 
	 * @param id
	 *            采购申请物品信息ID
	 * @param status
	 *            状态
	 * @return
	 */
	public int updateStatus(@Param("id") int id, @Param("status") int status);

	/**
	 * 查询符合条件采购申请物品信息
	 * 
	 * @param page
	 *            搜索条件实体类
	 * @return
	 */
	public List<PurchaseItem> listNotInItem(PurchaseRequestItemPage page);

	/**
	 * 查询采购申请物品信息数量
	 * 
	 * @param page
	 *            搜索条件实体类
	 * @return
	 */
	public Integer countNotInItem(PurchaseRequestItemPage page);
}